package qs.controls
{
	import flash.geom.Point;
	import flash.events.MouseEvent;
	import mx.events.DragEvent;
	
	public interface ILayout
	{
		function attach(container : FlexibleContainer, animator : LayoutAnimator) : void;
		function detach(container : FlexibleContainer) : void;
		
		function getMeasuredSize() : Point; // TODO: Ask Ely whether we should create a Size class instead.
		
		function findItemAt(px:Number,py:Number,seamAligned:Boolean):Number
		function generateLayout() : void;

		function dragStart(e:MouseEvent) : Boolean;
		function dragEnter(e:DragEvent) : Boolean;
		function dragOver(e:DragEvent) : Boolean;
		function dragDrop(e:DragEvent) : Boolean;
		function dragComplete(e:DragEvent) : Boolean;
		function dragOut(e:DragEvent) : Boolean;
	}
}